import { ChatOllama } from "@langchain/ollama";
import { PromptTemplate } from "@langchain/core/prompts";
import { StringOutputParser } from "@langchain/core/output_parsers";

// 1. 创建一个提示词模板
const pt = PromptTemplate.fromTemplate("请使用中文解释下面的概念：{topic}");

// 2. 创建模型
const model = new ChatOllama({
  model: "llama3",
  temperature: 0.7,
});

// 3. 解析器
const parser = new StringOutputParser();

// 4. 创建一个链条
let chain = pt.pipe(model).pipe(parser);

// 5. 创建一个简单的插件
const fn = (text) => text.replace(/闭包/g, "*&*闭包*&*");

chain = chain.pipe(fn);

const res = await chain.invoke({
  topic: "闭包",
});

console.log(res);
